package com.xhwl.centiotdata.handler.visitor;

import com.xhwl.centiotdata.pojo.dto.visitor.VisitorIntegrationConfigDTO;
import com.xhwl.common.dto.cent.visitor.VisitorAuthDTO;
import com.xhwl.common.dto.cent.visitor.VisitorGroupListDTO;
import com.xhwl.common.dto.cent.visitor.VisitorInfoDTO;
import com.xhwl.common.pojo.ResultJson;
import com.xhwl.common.pojo.cent.visitor.Auth;
import com.xhwl.common.pojo.cent.visitor.VisitorInfo;
import com.xhwl.common.query.cent.visitor.VisitorQRCodeQuery;
import org.springframework.beans.factory.InitializingBean;

import java.util.List;

/**
 * @Author: yanyixiong
 * @Description:
 * @Date: create in 9:27 2022/3/4
 */
public abstract class VisitorIntegrationHandler implements InitializingBean {
    /**
    * @description 访客授权
     * */
    public ResultJson createVisitorAuth(VisitorIntegrationConfigDTO configDTO, VisitorAuthDTO authDTO) {
        throw new UnsupportedOperationException();
    }
    public ResultJson cancelVisitor(VisitorIntegrationConfigDTO configDTO, VisitorInfoDTO infoDTO) {
        throw new UnsupportedOperationException();
    }
    public ResultJson leaveVisitor(VisitorIntegrationConfigDTO configDTO, VisitorInfoDTO infoDTO) {
        throw new UnsupportedOperationException();    }

    public ResultJson visitorQRCode(VisitorIntegrationConfigDTO configDTO, VisitorQRCodeQuery infoDTO) {
        throw new UnsupportedOperationException();
    }

    public List<VisitorGroupListDTO> pullVisitorPrivilegeGroup(VisitorIntegrationConfigDTO configDTO, String groupName) {
        throw new UnsupportedOperationException();
    }
    /**
     * @description 访客取消授权
     * */
    public ResultJson removeVisitorAuth(VisitorIntegrationConfigDTO configDTO, VisitorInfoDTO infoDTO) {
        throw new UnsupportedOperationException();
    }

    /**
     * @description 获取访客二维码
     * */
    public ResultJson getQrCode(VisitorIntegrationConfigDTO configDTO, VisitorAuthDTO visitorAuthDTO) {
        throw new UnsupportedOperationException();
    }

    public ResultJson pullPrivilegeGroup(VisitorIntegrationConfigDTO configDTO) {
        throw new UnsupportedOperationException();
    }

    /**
     * @description 根据第三方id获取授权设备
     * */
    public ResultJson<List<Auth>> getAuthDeviceListByOpenId(VisitorIntegrationConfigDTO configDTO, VisitorAuthDTO visitorAuthDTO) {
        throw new UnsupportedOperationException();
    }

    /**
     * @description 获取访客VR记录
     * */
    public void getVisitorVrRecord(VisitorIntegrationConfigDTO configDTO) throws Exception {
        throw new UnsupportedOperationException();
    }
    /**
     * @description 同步访客人员数据到VR系统
     * */
    public ResultJson createVrVisitor(VisitorIntegrationConfigDTO configDTO, VisitorAuthDTO authDTO) throws Exception {
        throw new UnsupportedOperationException();
    }
    /**
     * @description 根据身份证获取访客信息
     * */
    public ResultJson getVisitorInfoByIdCard(VisitorIntegrationConfigDTO integrationConfigDTO, VisitorAuthDTO dto) {
        throw new UnsupportedOperationException();
    }
    /**
     * @description 根据预约码获取访客信息
     * PS:大华ICC的接口仅支持预约状态的情况下获取信息
     * */
    public VisitorInfoDTO getVisitorInfoByAppointmentCode(VisitorIntegrationConfigDTO integrationConfigDTO, String appointmentCode) {
        throw new UnsupportedOperationException();
    }
    /**
     * @description 获取第三方门禁配置信息
     * */
    public ResultJson getOpenDeviceInfo(VisitorIntegrationConfigDTO integrationConfigDTO, VisitorAuthDTO dto) {
        throw new UnsupportedOperationException();
    }
    /**
     * @description 获取访客通行记录
     * */
    public VisitorInfoDTO getVisitorAccessRecord(VisitorIntegrationConfigDTO integrationConfigDTO, VisitorAuthDTO dto) {
        throw new UnsupportedOperationException();
    }
}
